<HTML>
<!--
  -- Copyright (c) 1996-1999
  -- Silicon Graphics Computer Systems, Inc.
  --
  -- Permission to use, copy, modify, distribute and sell this software
  -- and its documentation for any purpose is hereby granted without fee,
  -- provided that the above copyright notice appears in all copies and
  -- that both that copyright notice and this permission notice appear
  -- in supporting documentation.  Silicon Graphics makes no
  -- representations about the suitability of this software for any
  -- purpose.  It is provided "as is" without express or implied warranty.
  --
  -- Copyright (c) 1994
  -- Hewlett-Packard Company
  --
  -- Permission to use, copy, modify, distribute and sell this software
  -- and its documentation for any purpose is hereby granted without fee,
  -- provided that the above copyright notice appears in all copies and
  -- that both that copyright notice and this permission notice appear
  -- in supporting documentation.  Hewlett-Packard Company makes no
  -- representations about the suitability of this software for any
  -- purpose.  It is provided "as is" without express or implied warranty.
  --
  -->
<Head>
<Title>multimap&lt;Key, Data, Compare, Alloc&gt;</Title>
<!-- Generated by htmldoc -->
</HEAD>
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" 
	ALINK="#ff0000"> 
<IMG SRC="CorpID.gif" 
     ALT="SGI" HEIGHT="43" WIDTH="151"> 
<!--end header-->
<BR Clear>
<H1>multimap&lt;Key, Data, Compare, Alloc&gt;</H1>

<Table CellPadding=0 CellSpacing=0 width=100%>
<TR>
<TD Align=left><Img src = "containers.gif" Alt=""   WIDTH = "194"  HEIGHT = "38" ></TD>
<TD Align=right><Img src = "type.gif" Alt=""   WIDTH = "194"  HEIGHT = "39" ></TD>
</TR>
<TR>
<TD Align=left VAlign=top><b>Category</b>: containers</TD>
<TD Align=right VAlign=top><b>Component type</b>: type</TD>
</TR>
</Table>

<h3>Description</h3>
<tt>Multimap</tt> is a <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
that associates objects of type <tt>Key</tt> with
objects of type <tt>Data</tt>.  <tt>multimap</tt> is a 
<A href="PairAssociativeContainer.html">Pair Associative Container</A>, 
meaning that its value type is
<tt><A href="pair.html">pair</A>&lt;const Key, Data&gt;</tt>.  It is also a 
<A href="MultipleAssociativeContainer.html">Multiple Associative Container</A>,
meaning that there is no limit on the number of
elements with the same key.
<P>
<tt>Multimap</tt> has the important property that inserting a new element
into a <tt>multimap</tt> does not invalidate iterators that point to existing
elements.  Erasing an element from a <tt>multimap</tt> also does not
invalidate any iterators, except, of course, for iterators that
actually point to the element that is being erased.
<h3>Example</h3>
<pre>
struct ltstr
{
  bool operator()(const char* s1, const char* s2) const
  {
    return strcmp(s1, s2) &lt; 0;
  }
};

int main()
{
  multimap&lt;const char*, int, ltstr&gt; m;
  
  m.insert(pair&lt;const char* const, int&gt;(&quot;a&quot;, 1));
  m.insert(pair&lt;const char* const, int&gt;(&quot;c&quot;, 2));
  m.insert(pair&lt;const char* const, int&gt;(&quot;b&quot;, 3));
  m.insert(pair&lt;const char* const, int&gt;(&quot;b&quot;, 4));
  m.insert(pair&lt;const char* const, int&gt;(&quot;a&quot;, 5));
  m.insert(pair&lt;const char* const, int&gt;(&quot;b&quot;, 6));

  cout &lt;&lt; &quot;Number of elements with key a: &quot; &lt;&lt; m.count(&quot;a&quot;) &lt;&lt; endl;
  cout &lt;&lt; &quot;Number of elements with key b: &quot; &lt;&lt; m.count(&quot;b&quot;) &lt;&lt; endl;
  cout &lt;&lt; &quot;Number of elements with key c: &quot; &lt;&lt; m.count(&quot;c&quot;) &lt;&lt; endl;

  cout &lt;&lt; &quot;Elements in m: &quot; &lt;&lt; endl;
  for (multimap&lt;const char*, int, ltstr&gt;::iterator it = m.begin();
       it != m.end();
       ++it)
   cout &lt;&lt; &quot;  [&quot; &lt;&lt; (*it).first &lt;&lt; &quot;, &quot; &lt;&lt; (*it).second &lt;&lt; &quot;]&quot; &lt;&lt; endl;
}
</pre>
<h3>Definition</h3>
Defined in the standard header <A href="map">map</A>, and in the nonstandard
backward-compatibility header <A href="multimap.h">multimap.h</A>.
<h3>Template parameters</h3>
<Table border>
<TR>
<TH>
Parameter
</TH>
<TH>
Description
</TH>
<TH>
Default
</TH>
</TR>
<TR>
<TD VAlign=top>
<tt>Key</tt>
</TD>
<TD VAlign=top>
The multimap's key type.  This is also defined as <tt>multimap::key_type</tt>.
</TD>
<TD VAlign=top>
&nbsp;
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>Data</tt>
</TD>
<TD VAlign=top>
The multimap's data type.  This is also defined as <tt>multimap::data_type</tt>.
</TD>
<TD VAlign=top>
&nbsp;
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>Compare</tt>
</TD>
<TD VAlign=top>
The key comparison function, a <A href="StrictWeakOrdering.html">Strict Weak Ordering</A> whose
   argument type is <tt>key_type</tt>; it returns <tt>true</tt> if its first 
   argument is less than its second argument, and <tt>false</tt> otherwise.
   This is also defined as <tt>multimap::key_compare</tt>.
</TD>
<TD VAlign=top>
<tt><A href="less.html">less</A>&lt;Key&gt;</tt>
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>Alloc</tt>
</TD>
<TD VAlign=top>
The <tt>multimap</tt>'s allocator, used for all internal memory management.
</TD>
<TD VAlign=top>
<tt><A href="Allocators.html">alloc</A></tt>
</TD>
</tr>
</table>
<h3>Model of</h3>
<A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A>,
<A href="PairAssociativeContainer.html">Pair Associative Container</A>
<h3>Type requirements</h3>
<UL>
<LI>
<tt>Data</tt> is <A href="Assignable.html">Assignable</A>.
<LI>
<tt>Compare</tt> is a <A href="StrictWeakOrdering.html">Strict Weak Ordering</A> whose argument type
   is <tt>Key</tt>.
<LI>
<tt>Alloc</tt> is an <A href="Allocators.html">Allocator</A>.
</UL>
<h3>Public base classes</h3>
None.
<h3>Members</h3>
<Table border>
<TR>
<TH>
Member
</TH>
<TH>
Where defined
</TH>
<TH>
Description
</TH>
</TR>
<TR>
<TD VAlign=top>
<tt>key_type</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
The <tt>multimap</tt>'s key type, <tt>Key</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>data_type</tt>
</TD>
<TD VAlign=top>
 <A href="PairAssociativeContainer.html">Pair Associative Container</A>
</TD>
<TD VAlign=top>
The type of object associated with the keys.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>value_type</tt>
</TD>
<TD VAlign=top>
 <A href="PairAssociativeContainer.html">Pair Associative Container</A>
</TD>
<TD VAlign=top>
The type of object, <tt>pair&lt;const key_type, data_type&gt;</tt>, stored in the multimap.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>key_compare</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
 <A href="functors.html">Function object</A> that compares two keys for ordering.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>value_compare</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
 <A href="functors.html">Function object</A> that compares two values for ordering.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>pointer</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Pointer to <tt>T</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>reference</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Reference to <tt>T</tt>
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_reference</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Const reference to <tt>T</tt>
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>size_type</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
An unsigned integral type.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>difference_type</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
A signed integral type.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Iterator used to iterate through a <tt>multimap</tt>. <A href="#1">[1]</A>
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_iterator</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Const iterator used to iterate through a <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>reverse_iterator</tt>
</TD>
<TD VAlign=top>
 <A href="ReversibleContainer.html">Reversible Container</A>
</TD>
<TD VAlign=top>
Iterator used to iterate backwards through a <tt>multimap</tt>. <A href="#1">[1]</A>
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_reverse_iterator</tt>
</TD>
<TD VAlign=top>
 <A href="ReversibleContainer.html">Reversible Container</A>
</TD>
<TD VAlign=top>
Const iterator used to iterate backwards through a <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator begin()</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Returns an <tt>iterator</tt> pointing to the beginning of the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator end()</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Returns an <tt>iterator</tt> pointing to the end of the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_iterator begin() const</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Returns a <tt>const_iterator</tt> pointing to the beginning of the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_iterator end() const</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Returns a <tt>const_iterator</tt> pointing to the end of the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>reverse_iterator rbegin()</tt>
</TD>
<TD VAlign=top>
 <A href="ReversibleContainer.html">Reversible Container</A>
</TD>
<TD VAlign=top>
Returns a <tt>reverse_iterator</tt> pointing to the beginning of the
   reversed multimap.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>reverse_iterator rend()</tt>
</TD>
<TD VAlign=top>
 <A href="ReversibleContainer.html">Reversible Container</A>
</TD>
<TD VAlign=top>
Returns a <tt>reverse_iterator</tt> pointing to the end of the
   reversed multimap.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_reverse_iterator rbegin() const</tt>
</TD>
<TD VAlign=top>
 <A href="ReversibleContainer.html">Reversible Container</A>
</TD>
<TD VAlign=top>
Returns a <tt>const_reverse_iterator</tt> pointing to the beginning of the
   reversed multimap.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_reverse_iterator rend() const</tt>
</TD>
<TD VAlign=top>
 <A href="ReversibleContainer.html">Reversible Container</A>
</TD>
<TD VAlign=top>
Returns a <tt>const_reverse_iterator</tt> pointing to the end of the
   reversed multimap.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>size_type size() const</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Returns the size of the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>size_type max_size() const</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Returns the largest possible size of the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>bool empty() const</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
<tt>true</tt> if the <tt>multimap</tt>'s size is <tt>0</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>key_compare key_comp() const</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Returns the <tt>key_compare</tt> object used by the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>value_compare value_comp() const</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Returns the <tt>value_compare</tt> object used by the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>multimap()</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Creates an empty <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>multimap(const key_compare&amp; comp)</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Creates an empty <tt>multimap</tt>, using <tt>comp</tt> as the <tt>key_compare</tt> object.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
template &lt;class <A href="InputIterator.html">InputIterator</A>&gt;
multimap(InputIterator f, InputIterator l)
<A href="#2">[2]</A>
</pre>
</TD>
<TD VAlign=top>
 <A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Creates a multimap with a copy of a range.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
template &lt;class <A href="InputIterator.html">InputIterator</A>&gt;
multimap(InputIterator f, InputIterator l,
         const key_compare&amp; comp) 
<A href="#2">[2]</A>
</pre>
</TD>
<TD VAlign=top>
 <A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Creates a multimap with a copy of a range, using <tt>comp</tt> as the <tt>key_compare</tt>
   object.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>multimap(const multimap&amp;)</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
The copy constructor.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>multimap&amp; operator=(const multimap&amp;)</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
The assignment operator
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>void swap(multimap&amp;)</tt>
</TD>
<TD VAlign=top>
 <A href="Container.html">Container</A>
</TD>
<TD VAlign=top>
Swaps the contents of two multimaps.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator insert(const value_type&amp; x)</tt>
</TD>
<TD VAlign=top>
 <A href="MultipleAssociativeContainer.html">Multiple Associative Container</A>
</TD>
<TD VAlign=top>
Inserts <tt>x</tt> into the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
iterator insert(iterator pos, 
                const value_type&amp; x)
</pre>
</TD>
<TD VAlign=top>
 <A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Inserts <tt>x</tt> into the <tt>multimap</tt>, using <tt>pos</tt> as a hint to where it will be
   inserted.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
template &lt;class <A href="InputIterator.html">InputIterator</A>&gt;
void insert(InputIterator, InputIterator)
<A href="#2">[2]</A>
</pre>
</TD>
<TD VAlign=top>
 <A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Inserts a range into the <tt>multimap</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>void erase(iterator pos)</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Erases the element pointed to by <tt>pos</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>size_type erase(const key_type&amp; k)</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Erases the element whose key is <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>void erase(iterator first, iterator last)</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Erases all elements in a range.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>void clear()</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Erases all of the elements.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator find(const key_type&amp; k)</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Finds an element whose key is <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_iterator find(const key_type&amp; k) const</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Finds an element whose key is <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>size_type count(const key_type&amp; k)</tt>
</TD>
<TD VAlign=top>
 <A href="AssociativeContainer.html">Associative Container</A>
</TD>
<TD VAlign=top>
Counts the number of elements whose key is <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator lower_bound(const key_type&amp; k)</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Finds the first element whose key is not less than <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_iterator lower_bound(const key_type&amp; k) const</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Finds the first element whose key is not less than <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>iterator upper_bound(const key_type&amp; k)</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Finds the first element whose key greater than <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<tt>const_iterator upper_bound(const key_type&amp; k) const</tt>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Finds the first element whose key greater than <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
pair&lt;iterator, iterator&gt;
equal_range(const key_type&amp; k)
</pre>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Finds a range containing all elements whose key is <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
pair&lt;const_iterator, const_iterator&gt; 
equal_range(const key_type&amp; k) const
</pre>
</TD>
<TD VAlign=top>
 <A href="SortedAssociativeContainer.html">Sorted Associative Container</A>
</TD>
<TD VAlign=top>
Finds a range containing all elements whose key is <tt>k</tt>.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
bool operator==(const multimap&amp;, 
                const multimap&amp;)
</pre>
</TD>
<TD VAlign=top>
 <A href="ForwardContainer.html">Forward Container</A>
</TD>
<TD VAlign=top>
Tests two multimaps for equality.  This is a global function, not
   a member function.
</TD>
</TR>
<TR>
<TD VAlign=top>
<pre>
bool operator&lt;(const multimap&amp;, 
               const multimap&amp;)
</pre>
</TD>
<TD VAlign=top>
 <A href="ForwardContainer.html">Forward Container</A>
</TD>
<TD VAlign=top>
Lexicographical comparison.  This is a global function, not
   a member function.
</TD>
</tr>
</table>
<h3>New members</h3>
All of <tt>multimap</tt>'s members are defined in the
<A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A> and <A href="PairAssociativeContainer.html">Pair Associative Container</A>
requirements.  <tt>Multimap</tt> does not introduce any new members.
<h3>Notes</h3>
<P><A name="1">[1]</A>
<tt>Multimap::iterator</tt> is not a mutable iterator, because
<tt>multimap::value_type</tt> is not 
<A href="Assignable.html">Assignable</A>.  That is, if <tt>i</tt> is of
type <tt>multimap::iterator</tt> and <tt>p</tt> is of type
<tt>multimap::value_type</tt>, then <tt>*i = p</tt> is not a valid
expression.  However, <tt>multimap::iterator</tt> isn't a constant
iterator either, because it can be used to modify the object that it
points to.  Using the same notation as above, <tt>(*i).second = p</tt>
is a valid expression.  The same point applies to
<tt>multimap::reverse_iterator</tt>.
<P><A name="2">[2]</A>
This member function relies on <i>member template</i> functions, which
at present (early 1998) are not supported by all compilers.  If your
compiler supports member templates, you can call this function with
any type of <A href="InputIterator.html">input iterator</A>.  If your
compiler does not yet support member templates, though, then the
arguments must either be of type <tt>const value_type*</tt> or of type
<tt>multimap::const_iterator</tt>.
<h3>See also</h3>
<A href="AssociativeContainer.html">Associative Container</A>, 
<A href="SortedAssociativeContainer.html">Sorted Associative Container</A>, 
<A href="PairAssociativeContainer.html">Pair Associative Container</A>, 
<A href="MultipleSortedAssociativeContainer.html">Multiple Sorted Associative Container</A>, 
<tt><A href="set.html">set</A></tt>, <tt><A href="Map.html">map</A></tt>
<tt><A href="multiset.html">multiset</A></tt>, 
<tt><A href="hash_set.html">hash_set</A></tt>, 
<tt><A href="hash_map.html">hash_map</A></tt>, 
<tt><A href="hash_multiset.html">hash_multiset</A></tt>, 
<tt><A href="hash_multimap.html">hash_multimap</A></tt>

<!--start footer--> 
<HR SIZE="6">
<A href="http://www.sgi.com/"><IMG SRC="surf.gif" HEIGHT="54" WIDTH="54" 
        ALT="[Silicon Surf]"></A>
<A HREF="index.html"><IMG SRC="stl_home.gif" 
        HEIGHT="54" WIDTH="54" ALT="[STL Home]"></A>
<BR>
<FONT SIZE="-2">
<A href="http://www.sgi.com/Misc/sgi_info.html" TARGET="_top">Copyright &copy; 
1999 Silicon Graphics, Inc.</A> All Rights Reserved.</FONT>
<FONT SIZE="-3"><a href="http://www.sgi.com/Misc/external.list.html" TARGET="_top">TrademarkInformation</A>
</FONT>
<P>
</BODY>
</HTML> 
